// pages/login/login.js
import { Validation, login } from '../../api/uesr'
import { createStoreBindings } from 'mobx-miniprogram-bindings'
import store from '../../store/index'

Page({

    /**
     * 页面的初始数据
     */
    data: {
        form: {
            mobile: '18900000000',
            code: '246810',
            token: ''
        },
        // 组件倒计时
        time: 60 * 1000,
        // 控制倒计时结束按钮的显示
        isShow: true,
        // 错误提示
        errorCode: '',
        errorMobile: ''
    },
    // 绑定mobile
    putMobile (e) {
        // console.log(e);
        this.setData({
            'form.mobile': e.detail
        })
    },
    // 绑定code
    putCode (e) {
        this.setData({
            'form.code': e.detail
        })
    },
    // 失去焦点验证表单
    inpBlur (e) {
        if (!e.detail.cursor) {
            this.setData({
                errorMobile: "请填写手机号"
            })
        } else {
            this.setData({
                errorMobile: ""
            })
        }
    },
    codeBlur (e) {
        if (e.detail.cursor != 6) {
            this.setData({
                errorCode: "请填写验证码"
            })
        } else {
            this.setData({
                errorCode: ""
            })
        }
    },
    // 获取验证码
    async getValidation () {
        const reg = /^(?:(?:\+|00)86)?1\d{10}$/   
        if (reg.test(this.data.form.mobile)) {
            try {
                await Validation(this.data.form)
                wx.showToast({
                    title: '验证码已发送',
                    icon: 'success'
                })
                this.setData({
                    isShow: false
                })
            } catch (err) {
                wx.showToast({
                    title: '验证码发送失败',
                    icon: 'error'
                })
            }
        }else if (!reg.test(this.data.form.mobile)) {
            this.setData({
                errorMobile: '手机号格式错误'
            })
            return
        }

    },
    // 点击登录
    async onLogin () {
        if (this.data.form.mobile.length === 11 && this.data.form.code.length === 6) {

            try {
                const res = await login(this.data.form)
                // console.log(res);
                this.setToken(res.data.token)
                wx.setStorageSync('token', store.token);

                wx.showToast({
                    title: '登录成功',
                    icon: 'success'
                })
                
                wx.redirectTo({
                    url: '/pages/my/my?mobile=' + this.data.form.mobile
                });
            } catch (err) {
                wx.showToast({
                    title: '登录失败',
                    icon: 'error'
                })

            }
        } else {
            this.setData({
                errorMobile: "请填写手机号",
                errorCode: "请填写验证码"
            })
            wx.showToast({
                title: '请检查填写内容',
                icon: 'error'
            })
        }

    },
    // 倒计时结束
    onFinish () {
        this.setData({
            isShow: true
        })
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad (options) {
        createStoreBindings(this, {
            store:store,
            fields:['token'],
            actions:['setToken']
        })
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage () {

    }
})